package com.station.Activitys.utils;


import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.station.Activitys.bean.AppUpdate;
import com.station.Activitys.bean.Linkage;
import com.station.Activitys.bean.User;

import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;

/**
 * 项目名称：基站管理平台 手机app
 * 类描述：保存信息 管理提取类
 * 创建人：张飞祥
 * 创建时间：2018/9/3 10:24
 * 修改人：张飞祥
 * 修改时间：2018/9/3 10:24
 * 修改备注：
 */
public class CacheManger {

    //用户ID
    public static int mUserId;
    //用户实体类
    public static User mUser = null;
    //app 更新 实体类
    public static AppUpdate mAppUpdate = null;
    //创建 Gson 解析 实体类
    public static Gson mGson = new Gson();


    /**
     * 获取当前 用户 id
     * @param mACache
     * @return
     */
    public static int getUserId(ACache mACache){
        //获取内存用户实体
        mUserId = Integer.valueOf(mACache.getAsString(Constant.CACHE_USER_ID));
        return mUserId;
    }

    /**
     * 获取当前 用户实体
     * @param mACache
     * @return
     */
    public static User getUser(ACache mACache){
        //获取内存用户实体
        mUser = mGson.fromJson(mACache.getAsJSONObject(Constant.CACHE_USER) + "", User.class);
        return mUser;
    }

    /**
     * 获取当前 检查更新 实体
     * @param mACache
     * @return
     */
    public static AppUpdate getApp(ACache mACache){
        //获取内存用户实体
        mAppUpdate = mGson.fromJson(mACache.getAsJSONObject(Constant.CACHE_APP_UPDATE) + "", AppUpdate.class);
        return mAppUpdate;
    }

    /**
     * 获取当前 指定的 下拉列表集合
     * @param mACache
     * @return
     */
    public static List<String> getSpinnerKey(ACache mACache,String key){
        //数组结合 json 转换
        Type type = new TypeToken<ArrayList<String>>() {}.getType();
        //需要返回的 实体集合
        List<String> spinnerList = mGson.fromJson(mACache.getAsString(key),type);
        return spinnerList;
    }

    /**
     * 获取当前 省、市、区、三级联动 下拉列表集合
     * @param mACache
     * @return
     */
    public static List<Linkage> getLinkage(ACache mACache,String key){
        //数组结合 json 转换
        Type type = new TypeToken<ArrayList<Linkage>>() {}.getType();
        //需要返回的 实体集合
        List<Linkage> linkageList = mGson.fromJson(mACache.getAsString(key),type);
        return linkageList;
    }
}
